package com.xiye.system.service.user;

import com.xiye.common.entity.Page;
import com.xiye.common.entity.PageData;
import com.xiye.common.entity.User;

import java.util.List;

/**
 * @author 西野
 * @version V1.0
 * @title UserManager.java
 * @package com.xiye.system.service.user
 * @description 用户接口类
 * @date 2018-07-11
 */
public interface UserService {

    /*
     * @Author 西野
     * @Date 2018-06-22 10:06:06
     * @Description 登录判断
     * @Param [pd]
     * @Return com.xiye.common.entity.PageData
     */
    PageData getUserByNameAndPwd(PageData pd);

    /*
     * @Author 西野
     * @Date 2018-06-22 10:06:06
     * @Description 用户列表
     * @Param [page]
     * @Return java.util.List<com.xiye.common.entity.PageData>
     */
    List<PageData> listUsers(Page page);

    /*
     * @Author 西野
     * @Date 2018-06-22 10:06:06
     * @Description 用户列表
     * @Param [page]
     * @Return java.util.List<com.xiye.common.entity.PageData>
     */
    List<PageData> getMenuList(PageData pd);

    /*
     * @Author 西野
     * @Date 2018-06-22 10:06:06
     * @Description 通过用户ID获取用户信息和角色信息
     * @Param [USER_ID]
     * @Return com.xiye.common.entity.User
     */
    User getUserAndRoleById(String USER_ID);

    /*
     * @Author 西野
     * @Date 2018-06-22 12:06:06
     * @Description 通过USERNAEME获取数据
     * @Param [pd]
     * @Return com.xiye.common.entity.PageData
     */
    PageData findByUsername(PageData pd);

    /*
     * @Author 西野
     * @Date 2018-07-06 09:08:37
     * @Description 列出某角色下的所有用户
     * @Param [pd]
     * @Return java.util.List<com.xiye.common.entity.PageData>
     */
    List<PageData> listAllUserByRoldId(PageData pd);

    /*
     * @Author 西野
     * @Date 2018-07-20 13:06:07
     * @Description 新增用户
     * @Param [pd]
     * @Return void
     */
    void addUser(PageData pd);

    /*
     * @Author 西野
     * @Date 2018-07-20 10:58:09
     * @Description 删除用户
     * @Param [pd]
     * @Return void
     */
    void deleteUser(PageData pd);

    /*
     * @Author 西野
     * @Date 2018-07-20 13:45:26
     * @Description 修改用户
     * @Param [pd]
     * @Return void
     */
    void editUser(PageData pd);

    /*
     * @Author 西野
     * @Date 2018-07-20 14:52:10
     * @Description 批量删除用户
     * @Param [USER_IDS]
     * @Return void
     */
    void deleteAllUser(String[] USER_IDS);

    /*
     * @Author 西野
     * @Date 2018-07-20 15:20:02
     * @Description 获取所有用户
     * @Param [pd]
     * @Return java.util.List<com.xiye.common.entity.PageData>
     */
    List<PageData> listAllUser(PageData pd);
}
